//
//  UIImage+Extesion.swift
//  Weibo19
//
//  Created by heima on 16/9/5.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit


extension UIImage {
    class func getScreenSnap() -> UIImage? {
        
        // 先获取到window
        let window = UIApplication.shared.keyWindow!
        
        // 开启上下文
        // 如果最后一参数传入0的话，会按照屏幕的真实大小来截取，就是不会截取缩放之后的内容
        UIGraphicsBeginImageContextWithOptions(window.bounds.size, false, 0)
        
        // 将window的内容渲染到上下文中
        window.drawHierarchy(in: window.bounds, afterScreenUpdates: false)
        
        // 取到上下文中的图片
        let image = UIGraphicsGetImageFromCurrentImageContext()
        // 关闭上下文
        UIGraphicsEndImageContext()
        // 返回结果
        return image
    }
    

    //缩放到指定的宽度
    func scaleTo(width: CGFloat) -> UIImage {
        //判断如果图片本身宽度比执行的宽度还小, 那么就不缩放 直接返回
        if self.size.width < width {
            return self
        }
        //按比例算出高度
        let height: CGFloat = width * self.size.height / self.size.width;
        //定义一个范围
        let rect = CGRect(x: 0, y: 0, width: width, height: height)
        //开启上下文
        UIGraphicsBeginImageContext(rect.size)
        //将图片画到上下文中
        self.draw(in: rect)
        //从上下文中取
        let res = UIGraphicsGetImageFromCurrentImageContext()!
        //关闭上下文
        UIGraphicsEndImageContext()
        //返回
        return res
    }
    
    
}
